package com.hera.base.web.vaadin.mantenimiento;

import static com.hera.base.util.InputData.getObjectData;
import static com.hera.base.util.InputData.getStringData;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;

import com.hera.base.util.FiltroDTO;
import com.hera.base.util.TableCustom;
import com.hera.base.web.BaseUI;
import com.hera.base.web.MantenimientoMaestroDetalle;
import com.hera.process.config.domain.BusinessHour;
import com.hera.process.config.domain.Calendar;
import com.hera.process.config.domain.Holiday;
import com.hera.process.config.domain.ParameterDetail;
import com.hera.process.config.rest.delegate.ConfigDelegate;
import com.vaadin.annotations.AutoGenerated;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.data.util.BeanItemContainer;
import com.vaadin.event.FieldEvents.TextChangeEvent;
import com.vaadin.event.FieldEvents.TextChangeListener;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.TabSheet.Tab;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;

public class CalendarUI extends BaseUI implements MantenimientoMaestroDetalle,ClickListener {

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	@AutoGenerated
	private VerticalLayout mainLayout;
	@AutoGenerated
	private VerticalLayout verticalLayout_2;
	@AutoGenerated
	private HorizontalLayout lytDetalle;
	@AutoGenerated
	private HorizontalLayout lytTablaDetalle;
	@AutoGenerated
	private TabSheet tabSCalendar;
	@AutoGenerated
	private Panel panel_2;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_3;
	@AutoGenerated
	private VerticalLayout verticalLayout_8;
	@AutoGenerated
	private TextArea txaDescripcion;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_7;
	@AutoGenerated
	private TextField txtFin;
	@AutoGenerated
	private TextField txtInicio;
	@AutoGenerated
	private ComboBox cmbTipo;
	@AutoGenerated
	private ComboBox cmbMes;
	@AutoGenerated
	private TextField txtNombre;
	@AutoGenerated
	private Label lblTituloFeriado;
	@AutoGenerated
	private VerticalLayout verticalLayout_7;
	@AutoGenerated
	private TableCustom tblHolliday;
	@AutoGenerated
	private Panel panel_1;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_1;
	@AutoGenerated
	private VerticalLayout verticalLayout_6;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_4;
	@AutoGenerated
	private Button btnEliminarDia;
	@AutoGenerated
	private Button btnGuardarDia;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_5;
	@AutoGenerated
	private Label label_3;
	@AutoGenerated
	private TextField txtHoraFin;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_6;
	@AutoGenerated
	private Label label_2;
	@AutoGenerated
	private TextField txtHoraInicio;
	@AutoGenerated
	private ComboBox cmbDia;
	@AutoGenerated
	private Label lblDias;
	@AutoGenerated
	private VerticalLayout verticalLayout_5;
	@AutoGenerated
	private TableCustom tblBussines;
	@AutoGenerated
	private HorizontalLayout lytMaestro;
	@AutoGenerated
	private VerticalLayout pnlFormulario;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_2;
	@AutoGenerated
	private Button btnEliminarMaestro;
	@AutoGenerated
	private Button btnGuardarMaestro;
	@AutoGenerated
	private ComboBox cmbEstadoMaestro;
	@AutoGenerated
	private TextArea txtDescripcionMaestro;
	@AutoGenerated
	private TextField txtNombreMaestro;
	@AutoGenerated
	private Label label_1;
	@AutoGenerated
	private HorizontalLayout lytTablaMaestra;
	@AutoGenerated
	private TableCustom tblfMaestro;
	private static final Logger log = Logger.getLogger(CalendarUI.class);
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * The constructor should first build the main layout, set the
	 * composition root and then do any custom initialization.
	 *
	 * The constructor will not be automatically regenerated by the
	 * visual editor.
	 */
	
	@Autowired
	ConfigDelegate configDelegate;
	boolean esNuevo;
	boolean esNuevoBusinessHour;
	Calendar calendar;
	BussinesUI bussinesUI;
	HolidayUI	holidayUI;
	
	BusinessHour businessHour;
	Holiday holiday;
	
	
	
	public CalendarUI() {
		buildMainLayout();
		setCompositionRoot(mainLayout);

		// TODO add user code here
	}

	@Override
	protected void postConstruct() {
		 cargarFormulario();
		 buscarMaestro();
		 
		
		 
		// Crear una hoja de la ficha vacía. 
		 
		 Tab tabsheet ; 
	
		 
//		 tabsheet.setCaption("TAP1");
		 
//		 bussinesUI=new BussinesUI();
		
//		 tabsheet=tabSCalendar.addTab(bussinesUI);
//		 tabsheet.setCaption("Dìas Laborables");
		 
//		 holidayUI=new HolidayUI();
//		 tabsheet=tabSCalendar.addTab(new HolidayUI());
//		 tabsheet.setCaption("Dìas Feriados");
//		 
//		 tabsheet=tabSCalendar.addTab(new )
//		 tabSCalendar.addTab(c)(tabsheet);
}
	
	
	@Override
	public void cargarFormulario() {
		
		
		
		 txtNombreMaestro.setNullRepresentation("");
		 txtNombreMaestro.setNullRepresentation("");
		 
		
		log.info("incio cargarFormulario");
		esNuevo=true;
		esNuevoBusinessHour=true;
		calendar=null;
		
		txtNombreMaestro.addStyleName("fieldRequeried");
		
		btnEliminarMaestro.setVisible(false);
		btnEliminarMaestro.addClickListener(this);
		btnGuardarMaestro.addClickListener(this);
		btnGuardarMaestro.setCaption("Nuevo");
		
		
		tblfMaestro.setTitulo("Listado de Calendario");
		tblfMaestro.setHeight("200px");
		txtDescripcionMaestro.setNullRepresentation(StringUtils.EMPTY);
		
		tblfMaestro.addColumn("name", "Nombre", 200, true, String.class);		
		tblfMaestro.addColumn("status.name", "Estado", 80,true,String.class);
		tblfMaestro.addColumn("description", "Descripcion", 200, true, String.class);
		tblfMaestro.construir();
		tblfMaestro.addTextChangeListener(new TextChangeListener() {
			private static final long serialVersionUID = 1L;
			@Override
			public void textChange(TextChangeEvent event) {
				buscarMaestro(event);
			}
		});
		
		tblfMaestro.addValueChangeListener(new ValueChangeListener() {			
			private static final long serialVersionUID = 1L;
			@Override
			public void valueChange(ValueChangeEvent event) {
				calendar=(Calendar)tblfMaestro.getSelectedItem(event);
				esNuevo=(calendar==null);
				if (esNuevo) {
					limpiarMaestro();
				}else {
					btnEliminarMaestro.setVisible(true);
					btnGuardarMaestro.setCaption("Modificar");
					txtNombreMaestro.setValue(calendar.getName());
					txtDescripcionMaestro.setValue(calendar.getDescription());
					cmbEstadoMaestro.setValue(calendar.getStatus());
				}
				
			}
		});
		
		List<ParameterDetail> lstStatus=configDelegate.findStatus();
		BeanItemContainer<ParameterDetail>container=new BeanItemContainer<ParameterDetail>(ParameterDetail.class);
		container.addAll(lstStatus);
		cmbEstadoMaestro.setContainerDataSource(container);
		cmbEstadoMaestro.setItemCaptionPropertyId("name");
		
		
		
		tblBussines.setHeight("170px");
		tblBussines.setTitulo("Horario por dia");
		tblBussines.addColumn("Dia", "Dia", 150, true, Long.class);
		tblBussines.addColumn("Hora Ingreso", "Hora Inicio", 100, true, String.class);
		tblBussines.addColumn("Hora Salida", "Hora Fin", 100, true, String.class);
		tblBussines.construir();		
		tblBussines.addTextChangeListener(new TextChangeListener() {
		
			private static final long serialVersionUID = 1L;
			@Override
			public void textChange(TextChangeEvent event) {
				buscarDetalle(event);				
			}
		});
		tblBussines.addValueChangeListener(new ValueChangeListener() {		
			private static final long serialVersionUID = 1L;
			@Override
			public void valueChange(ValueChangeEvent event) {
				businessHour=(BusinessHour)tblBussines.getSelectedItem(event);
				esNuevoBusinessHour=(businessHour==null);
				if(esNuevoBusinessHour){
					limpiarDetalle();
					
				}else{
					cmbDia.setValue(businessHour.getBusinessDay().getDay());
					txtHoraInicio.setValue(businessHour.getBusinessHourPK().getStartHour());
					txtHoraInicio.setValue(businessHour.getEndHour());
					btnEliminarDia.setVisible(true);
					btnGuardarDia.setCaption("Modificar");

				}				
			}
		});
		
		tblHolliday.setHeight("170px");
		tblHolliday.setTitulo("Feriados");
		tblHolliday.addColumn("name", "Nombre", 150, true, Long.class);
		tblHolliday.addColumn("mes.name", "Mes", 80, true, String.class);
		tblHolliday.addColumn("tipo.name", "Tipo", 80, true, String.class);
		tblHolliday.addColumn("holidayStart", "Dia Inicio", 50, true, String.class);
		tblHolliday.addColumn("holidayEnd", "Dia Fin", 50, true, String.class);
		tblHolliday.construir();		
		tblHolliday.addTextChangeListener(new TextChangeListener() {
		
			private static final long serialVersionUID = 1L;
			@Override
			public void textChange(TextChangeEvent event) {
				buscarDetalle(event);				
			}
		});
		tblHolliday.addValueChangeListener(new ValueChangeListener() {		
			private static final long serialVersionUID = 1L;
			@Override
			public void valueChange(ValueChangeEvent event) {
//				businessHour=(BusinessHour)tblBussines.getSelectedItem(event);
//				esNuevoBusinessHour=(businessHour==null);
//				if(esNuevoBusinessHour){
//					limpiarDetalle();
//					
//				}else{
//					cmbDia.setValue(businessHour.getBusinessDay().getDay());
//					txtHoraInicio.setValue(businessHour.getBusinessHourPK().getStartHour());
//					txtHoraInicio.setValue(businessHour.getEndHour());
//					btnEliminarDia.setVisible(true);
//					btnGuardarDia.setCaption("Modificar");
//
//				}				
			}
		});
		log.info("fin cargarFormulario");
		
	}
	
	
	@Override
	public void buscarMaestro() {
		buscarMaestro(null);
		buscarDetalle(null);
	}

	@Override
	public void buscarMaestro(TextChangeEvent event) {		
		log.info("inicio buscarMaestro");
		FiltroDTO filtroDTO=tblfMaestro.getFiltroDTO(event);
		filtroDTO.addAlias("status");
		filtroDTO.addOrdenamientoAscendente("name");
		List<Calendar> lstCalendar=configDelegate.findAllCalendars(filtroDTO);
		tblfMaestro.setLstData(lstCalendar);
		limpiarMaestro();
		log.info("fin buscarMaestro");		
	}
	
	
	
	
	
	

	@Override
	public void buttonClick(ClickEvent event) {
		
		if (event.getButton().equals(btnEliminarMaestro))	 {
			eliminarMaestro();
		}else if (event.getButton().equals(btnGuardarMaestro)) {
			guardarMaestro();
		}
			
		}
		
		
		
	




	@Override
	public void limpiarMaestro() {
		
		log.info("inico LIMPIAR MAESTRO");
		btnEliminarMaestro.setVisible(false);
		btnGuardarMaestro.setCaption("Nuevo");
		txtNombreMaestro.setValue("");
		txtDescripcionMaestro.setValue("");
		cmbEstadoMaestro.setValue(null);
		
		log.info("fin limpiarMaestro");
		
		
		
	}

	@Override
	public void eliminarMaestro() {
		
		log.info("inicio eliminarMaestro");
		configDelegate.deleteCalendar(calendar);
		buscarMaestro();
		limpiarMaestro();
		log.info("fin eliminarMaestro");
		
	}

	@Override
	public void guardarMaestro() {
		
		log.info("inicio guardarMaestro");
		if (esNuevo) {
			calendar=new Calendar();
			obtenerDatosFormulario(calendar);
			configDelegate.createCalendar(calendar);
		}else {
			
			obtenerDatosFormulario(calendar);
			configDelegate.updatedCalendar(calendar);
		}
		limpiarMaestro();
		buscarMaestro();
		log.info("fin guardarMaestro");
		
	}

	@Override
	public void buscarDetalle() {
		buscarDetalle(null);
		
	}
	
	private void buscarBusiness(TextChangeEvent event){
		log.info("inicio buscarBusiness");
		if(calendar==null){
			tblBussines.setLstData(new ArrayList<BusinessHour>());
			return;
		}
		FiltroDTO filtroDTO=tblBussines.getFiltroDTO(event);
		filtroDTO.addParametro("businessDay.calendar.idCalendar", calendar.getIdCalendar());
		List<BusinessHour> lstBusinessHour=configDelegate.findAllBusinessHours(filtroDTO);
		tblBussines.setLstData(lstBusinessHour);
		log.info("fin buscarBusiness");		
	}
	private void buscarHoliday(TextChangeEvent event){
		log.info("inicio buscarBusiness");
		if(calendar==null){
			tblHolliday.setLstData(new ArrayList<Holiday>());
			return;
		}
		FiltroDTO filtroDTO=tblHolliday.getFiltroDTO(event);
		filtroDTO.addParametro("businessDay.calendar.idCalendar", calendar.getIdCalendar());
		List<Holiday> lstHoliday=configDelegate.findAllHolidays(filtroDTO);
		tblHolliday.setLstData(lstHoliday);
		log.info("fin buscarBusiness");		
	}

	@Override
	public void buscarDetalle(TextChangeEvent event) {
		buscarBusiness(event);
		buscarHoliday(event);
	}

	@Override
	public void limpiarDetalle() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void eliminarDetalle() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void guardarDetalle() {
		// TODO Auto-generated method stub
		
	}
	
	private void obtenerDatosFormulario(Calendar calendar) {
		
		calendar.setName(getStringData(txtNombreMaestro,"Nombre"));
//		calendar.setDescription(getStringData(txaDescripcionMaestro,"Descripcion"));
		calendar.setStatus(getObjectData(cmbEstadoMaestro, ParameterDetail.class,"Estado"));
	}

	@AutoGenerated
	private VerticalLayout buildMainLayout() {
		// common part: create layout
		mainLayout = new VerticalLayout();
		mainLayout.setImmediate(false);
		mainLayout.setWidth("100%");
		mainLayout.setHeight("100%");
		mainLayout.setMargin(false);
		
		// top-level component properties
		setWidth("100.0%");
		setHeight("100.0%");
		
		// verticalLayout_2
		verticalLayout_2 = buildVerticalLayout_2();
		mainLayout.addComponent(verticalLayout_2);
		
		return mainLayout;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_2() {
		// common part: create layout
		verticalLayout_2 = new VerticalLayout();
		verticalLayout_2.setImmediate(false);
		verticalLayout_2.setWidth("-1px");
		verticalLayout_2.setHeight("-1px");
		verticalLayout_2.setMargin(false);
		verticalLayout_2.setSpacing(true);
		
		// lytMaestro
		lytMaestro = buildLytMaestro();
		verticalLayout_2.addComponent(lytMaestro);
		
		// lytDetalle
		lytDetalle = buildLytDetalle();
		verticalLayout_2.addComponent(lytDetalle);
		
		return verticalLayout_2;
	}

	@AutoGenerated
	private HorizontalLayout buildLytMaestro() {
		// common part: create layout
		lytMaestro = new HorizontalLayout();
		lytMaestro.setImmediate(false);
		lytMaestro.setWidth("-1px");
		lytMaestro.setHeight("-1px");
		lytMaestro.setMargin(false);
		
		// lytTablaMaestra
		lytTablaMaestra = buildLytTablaMaestra();
		lytMaestro.addComponent(lytTablaMaestra);
		
		// pnlFormulario
		pnlFormulario = buildPnlFormulario();
		lytMaestro.addComponent(pnlFormulario);
		
		return lytMaestro;
	}

	@AutoGenerated
	private HorizontalLayout buildLytTablaMaestra() {
		// common part: create layout
		lytTablaMaestra = new HorizontalLayout();
		lytTablaMaestra.setImmediate(false);
		lytTablaMaestra.setWidth("570px");
		lytTablaMaestra.setHeight("-1px");
		lytTablaMaestra.setMargin(false);
		
		// tblfMaestro
		tblfMaestro = new TableCustom();
		tblfMaestro.setImmediate(false);
		tblfMaestro.setWidth("-1px");
		tblfMaestro.setHeight("-1px");
		lytTablaMaestra.addComponent(tblfMaestro);
		
		return lytTablaMaestra;
	}

	@AutoGenerated
	private VerticalLayout buildPnlFormulario() {
		// common part: create layout
		pnlFormulario = new VerticalLayout();
		pnlFormulario.setImmediate(false);
		pnlFormulario.setWidth("-1px");
		pnlFormulario.setHeight("-1px");
		pnlFormulario.setMargin(false);
		pnlFormulario.setSpacing(true);
		
		// label_1
		label_1 = new Label();
		label_1.setStyleName("titulo");
		label_1.setImmediate(false);
		label_1.setWidth("-1px");
		label_1.setHeight("-1px");
		label_1.setValue("Formulario de Registro");
		pnlFormulario.addComponent(label_1);
		
		// txtNombreMaestro
		txtNombreMaestro = new TextField();
		txtNombreMaestro.setStyleName("fieldRequired");
		txtNombreMaestro.setImmediate(false);
		txtNombreMaestro.setDescription("Nombre");
		txtNombreMaestro.setWidth("200px");
		txtNombreMaestro.setHeight("-1px");
		txtNombreMaestro.setInputPrompt("Nombre");
		pnlFormulario.addComponent(txtNombreMaestro);
		
		// txtDescripcionMaestro
		txtDescripcionMaestro = new TextArea();
		txtDescripcionMaestro.setImmediate(false);
		txtDescripcionMaestro.setWidth("200px");
		txtDescripcionMaestro.setHeight("-1px");
		txtDescripcionMaestro.setInputPrompt("Descripción");
		pnlFormulario.addComponent(txtDescripcionMaestro);
		
		// cmbEstadoMaestro
		cmbEstadoMaestro = new ComboBox();
		cmbEstadoMaestro.setStyleName("fieldRequired");
		cmbEstadoMaestro.setImmediate(false);
		cmbEstadoMaestro.setWidth("200px");
		cmbEstadoMaestro.setHeight("-1px");
		pnlFormulario.addComponent(cmbEstadoMaestro);
		
		// horizontalLayout_2
		horizontalLayout_2 = buildHorizontalLayout_2();
		pnlFormulario.addComponent(horizontalLayout_2);
		
		return pnlFormulario;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_2() {
		// common part: create layout
		horizontalLayout_2 = new HorizontalLayout();
		horizontalLayout_2.setImmediate(false);
		horizontalLayout_2.setWidth("-1px");
		horizontalLayout_2.setHeight("-1px");
		horizontalLayout_2.setMargin(false);
		horizontalLayout_2.setSpacing(true);
		
		// btnGuardarMaestro
		btnGuardarMaestro = new Button();
		btnGuardarMaestro.setCaption("Guardar");
		btnGuardarMaestro.setImmediate(true);
		btnGuardarMaestro.setWidth("-1px");
		btnGuardarMaestro.setHeight("-1px");
		horizontalLayout_2.addComponent(btnGuardarMaestro);
		
		// btnEliminarMaestro
		btnEliminarMaestro = new Button();
		btnEliminarMaestro.setCaption("Eliminar");
		btnEliminarMaestro.setImmediate(true);
		btnEliminarMaestro.setWidth("-1px");
		btnEliminarMaestro.setHeight("-1px");
		horizontalLayout_2.addComponent(btnEliminarMaestro);
		
		return horizontalLayout_2;
	}

	@AutoGenerated
	private HorizontalLayout buildLytDetalle() {
		// common part: create layout
		lytDetalle = new HorizontalLayout();
		lytDetalle.setImmediate(false);
		lytDetalle.setWidth("100.0%");
		lytDetalle.setHeight("-1px");
		lytDetalle.setMargin(false);
		
		// lytTablaDetalle
		lytTablaDetalle = buildLytTablaDetalle();
		lytDetalle.addComponent(lytTablaDetalle);
		
		return lytDetalle;
	}

	@AutoGenerated
	private HorizontalLayout buildLytTablaDetalle() {
		// common part: create layout
		lytTablaDetalle = new HorizontalLayout();
		lytTablaDetalle.setImmediate(false);
		lytTablaDetalle.setWidth("100.0%");
		lytTablaDetalle.setHeight("-1px");
		lytTablaDetalle.setMargin(false);
		
		// tabSCalendar
		tabSCalendar = buildTabSCalendar();
		lytTablaDetalle.addComponent(tabSCalendar);
		
		return lytTablaDetalle;
	}

	@AutoGenerated
	private TabSheet buildTabSCalendar() {
		// common part: create layout
		tabSCalendar = new TabSheet();
		tabSCalendar.setImmediate(true);
		tabSCalendar.setWidth("100.0%");
		tabSCalendar.setHeight("300px");
		
		// panel_1
		panel_1 = buildPanel_1();
		tabSCalendar.addTab(panel_1, "Dias de Trabajo", null);
		
		// panel_2
		panel_2 = buildPanel_2();
		tabSCalendar.addTab(panel_2, "Feriados", null);
		
		return tabSCalendar;
	}

	@AutoGenerated
	private Panel buildPanel_1() {
		// common part: create layout
		panel_1 = new Panel();
		panel_1.setImmediate(false);
		panel_1.setWidth("100.0%");
		panel_1.setHeight("100.0%");
		
		// horizontalLayout_1
		horizontalLayout_1 = buildHorizontalLayout_1();
		panel_1.setContent(horizontalLayout_1);
		
		return panel_1;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_1() {
		// common part: create layout
		horizontalLayout_1 = new HorizontalLayout();
		horizontalLayout_1.setImmediate(false);
		horizontalLayout_1.setWidth("-1px");
		horizontalLayout_1.setHeight("-1px");
		horizontalLayout_1.setMargin(true);
		
		// verticalLayout_5
		verticalLayout_5 = buildVerticalLayout_5();
		horizontalLayout_1.addComponent(verticalLayout_5);
		
		// verticalLayout_6
		verticalLayout_6 = buildVerticalLayout_6();
		horizontalLayout_1.addComponent(verticalLayout_6);
		
		return horizontalLayout_1;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_5() {
		// common part: create layout
		verticalLayout_5 = new VerticalLayout();
		verticalLayout_5.setImmediate(false);
		verticalLayout_5.setWidth("540px");
		verticalLayout_5.setHeight("-1px");
		verticalLayout_5.setMargin(false);
		
		// tblBussines
		tblBussines = new TableCustom();
		tblBussines.setImmediate(false);
		tblBussines.setWidth("-1px");
		tblBussines.setHeight("-1px");
		verticalLayout_5.addComponent(tblBussines);
		
		return verticalLayout_5;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_6() {
		// common part: create layout
		verticalLayout_6 = new VerticalLayout();
		verticalLayout_6.setImmediate(false);
		verticalLayout_6.setWidth("-1px");
		verticalLayout_6.setHeight("-1px");
		verticalLayout_6.setMargin(false);
		verticalLayout_6.setSpacing(true);
		
		// lblDias
		lblDias = new Label();
		lblDias.setStyleName("titulo");
		lblDias.setImmediate(false);
		lblDias.setWidth("-1px");
		lblDias.setHeight("-1px");
		lblDias.setValue("Dias");
		verticalLayout_6.addComponent(lblDias);
		
		// cmbDia
		cmbDia = new ComboBox();
		cmbDia.setImmediate(false);
		cmbDia.setWidth("200px");
		cmbDia.setHeight("-1px");
		verticalLayout_6.addComponent(cmbDia);
		
		// horizontalLayout_6
		horizontalLayout_6 = buildHorizontalLayout_6();
		verticalLayout_6.addComponent(horizontalLayout_6);
		
		// horizontalLayout_5
		horizontalLayout_5 = buildHorizontalLayout_5();
		verticalLayout_6.addComponent(horizontalLayout_5);
		
		// horizontalLayout_4
		horizontalLayout_4 = buildHorizontalLayout_4();
		verticalLayout_6.addComponent(horizontalLayout_4);
		
		return verticalLayout_6;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_6() {
		// common part: create layout
		horizontalLayout_6 = new HorizontalLayout();
		horizontalLayout_6.setImmediate(false);
		horizontalLayout_6.setWidth("-1px");
		horizontalLayout_6.setHeight("-1px");
		horizontalLayout_6.setMargin(false);
		horizontalLayout_6.setSpacing(true);
		
		// txtHoraInicio
		txtHoraInicio = new TextField();
		txtHoraInicio.setImmediate(false);
		txtHoraInicio.setWidth("100px");
		txtHoraInicio.setHeight("-1px");
		txtHoraInicio.setInputPrompt("Hora Inicio");
		horizontalLayout_6.addComponent(txtHoraInicio);
		
		// label_2
		label_2 = new Label();
		label_2.setImmediate(false);
		label_2.setWidth("-1px");
		label_2.setHeight("-1px");
		label_2.setValue("(HH:MM)");
		horizontalLayout_6.addComponent(label_2);
		
		return horizontalLayout_6;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_5() {
		// common part: create layout
		horizontalLayout_5 = new HorizontalLayout();
		horizontalLayout_5.setImmediate(false);
		horizontalLayout_5.setWidth("-1px");
		horizontalLayout_5.setHeight("-1px");
		horizontalLayout_5.setMargin(false);
		horizontalLayout_5.setSpacing(true);
		
		// txtHoraFin
		txtHoraFin = new TextField();
		txtHoraFin.setImmediate(false);
		txtHoraFin.setWidth("100px");
		txtHoraFin.setHeight("-1px");
		txtHoraFin.setInputPrompt("Hora Fin");
		horizontalLayout_5.addComponent(txtHoraFin);
		
		// label_3
		label_3 = new Label();
		label_3.setImmediate(false);
		label_3.setWidth("-1px");
		label_3.setHeight("-1px");
		label_3.setValue("(HH:MM)");
		horizontalLayout_5.addComponent(label_3);
		
		return horizontalLayout_5;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_4() {
		// common part: create layout
		horizontalLayout_4 = new HorizontalLayout();
		horizontalLayout_4.setImmediate(false);
		horizontalLayout_4.setWidth("-1px");
		horizontalLayout_4.setHeight("-1px");
		horizontalLayout_4.setMargin(false);
		horizontalLayout_4.setSpacing(true);
		
		// btnGuardarDia
		btnGuardarDia = new Button();
		btnGuardarDia.setCaption("Guardar");
		btnGuardarDia.setImmediate(true);
		btnGuardarDia.setWidth("-1px");
		btnGuardarDia.setHeight("-1px");
		horizontalLayout_4.addComponent(btnGuardarDia);
		
		// btnEliminarDia
		btnEliminarDia = new Button();
		btnEliminarDia.setCaption("Eliminar");
		btnEliminarDia.setImmediate(true);
		btnEliminarDia.setWidth("-1px");
		btnEliminarDia.setHeight("-1px");
		horizontalLayout_4.addComponent(btnEliminarDia);
		
		return horizontalLayout_4;
	}

	@AutoGenerated
	private Panel buildPanel_2() {
		// common part: create layout
		panel_2 = new Panel();
		panel_2.setImmediate(false);
		panel_2.setWidth("100.0%");
		panel_2.setHeight("100.0%");
		
		// horizontalLayout_3
		horizontalLayout_3 = buildHorizontalLayout_3();
		panel_2.setContent(horizontalLayout_3);
		
		return panel_2;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_3() {
		// common part: create layout
		horizontalLayout_3 = new HorizontalLayout();
		horizontalLayout_3.setImmediate(false);
		horizontalLayout_3.setWidth("-1px");
		horizontalLayout_3.setHeight("-1px");
		horizontalLayout_3.setMargin(true);
		
		// verticalLayout_7
		verticalLayout_7 = buildVerticalLayout_7();
		horizontalLayout_3.addComponent(verticalLayout_7);
		
		// verticalLayout_8
		verticalLayout_8 = buildVerticalLayout_8();
		horizontalLayout_3.addComponent(verticalLayout_8);
		
		return horizontalLayout_3;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_7() {
		// common part: create layout
		verticalLayout_7 = new VerticalLayout();
		verticalLayout_7.setImmediate(false);
		verticalLayout_7.setWidth("540px");
		verticalLayout_7.setHeight("-1px");
		verticalLayout_7.setMargin(false);
		
		// tblHolliday
		tblHolliday = new TableCustom();
		tblHolliday.setImmediate(false);
		tblHolliday.setWidth("-1px");
		tblHolliday.setHeight("-1px");
		verticalLayout_7.addComponent(tblHolliday);
		
		return verticalLayout_7;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_8() {
		// common part: create layout
		verticalLayout_8 = new VerticalLayout();
		verticalLayout_8.setImmediate(false);
		verticalLayout_8.setWidth("-1px");
		verticalLayout_8.setHeight("-1px");
		verticalLayout_8.setMargin(false);
		verticalLayout_8.setSpacing(true);
		
		// lblTituloFeriado
		lblTituloFeriado = new Label();
		lblTituloFeriado.setStyleName("titulo");
		lblTituloFeriado.setImmediate(false);
		lblTituloFeriado.setWidth("-1px");
		lblTituloFeriado.setHeight("-1px");
		lblTituloFeriado.setValue("Feriados");
		verticalLayout_8.addComponent(lblTituloFeriado);
		
		// txtNombre
		txtNombre = new TextField();
		txtNombre.setImmediate(false);
		txtNombre.setWidth("200px");
		txtNombre.setHeight("-1px");
		txtNombre.setInputPrompt("Nombre");
		verticalLayout_8.addComponent(txtNombre);
		
		// cmbMes
		cmbMes = new ComboBox();
		cmbMes.setImmediate(false);
		cmbMes.setWidth("200px");
		cmbMes.setHeight("-1px");
		verticalLayout_8.addComponent(cmbMes);
		
		// cmbTipo
		cmbTipo = new ComboBox();
		cmbTipo.setImmediate(false);
		cmbTipo.setWidth("200px");
		cmbTipo.setHeight("-1px");
		verticalLayout_8.addComponent(cmbTipo);
		
		// horizontalLayout_7
		horizontalLayout_7 = buildHorizontalLayout_7();
		verticalLayout_8.addComponent(horizontalLayout_7);
		
		// txaDescripcion
		txaDescripcion = new TextArea();
		txaDescripcion.setImmediate(false);
		txaDescripcion.setWidth("200px");
		txaDescripcion.setHeight("70px");
		txaDescripcion.setInputPrompt("Descripción");
		verticalLayout_8.addComponent(txaDescripcion);
		
		return verticalLayout_8;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_7() {
		// common part: create layout
		horizontalLayout_7 = new HorizontalLayout();
		horizontalLayout_7.setImmediate(false);
		horizontalLayout_7.setWidth("-1px");
		horizontalLayout_7.setHeight("-1px");
		horizontalLayout_7.setMargin(false);
		horizontalLayout_7.setSpacing(true);
		
		// txtInicio
		txtInicio = new TextField();
		txtInicio.setImmediate(false);
		txtInicio.setWidth("95px");
		txtInicio.setHeight("-1px");
		txtInicio.setInputPrompt("Dia Inicio");
		horizontalLayout_7.addComponent(txtInicio);
		
		// txtFin
		txtFin = new TextField();
		txtFin.setImmediate(false);
		txtFin.setWidth("95px");
		txtFin.setHeight("-1px");
		txtFin.setInputPrompt("Dia Fin");
		horizontalLayout_7.addComponent(txtFin);
		
		return horizontalLayout_7;
	}
}